package cn.com.blueInfo.bpm.number.repository;

import cn.com.blueInfo.bpm.number.entity.NumberRuleComponent;
import cn.com.blueInfo.bpm.number.request.NumberRuleComponentDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 编号规则组成配置 数据服务类
 * @author suxch
 * @since 2025-09-01 19:26:29
 */
public interface NumberRuleComponentRepository extends IService<NumberRuleComponent> {

    /**
     * 新增编号规则组成配置
     * @param numberRuleComponent 编号规则组成配置参数
     */
    Integer createNumberRuleComponent(NumberRuleComponent numberRuleComponent);

    /**
     * 批量新增编号规则组成配置
     * @param numberRuleComponentList 编号规则组成配置参数列表
     */
    Integer batchCreateNumberRuleComponent(List<NumberRuleComponent> numberRuleComponentList);

    /**
     * 删除编号规则组成配置
     * @param numberRuleComponentId 编号规则组成配置ID
     */
    Integer deleteNumberRuleComponent(Long numberRuleComponentId);

    /**
     * 批量删除编号规则组成配置
     * @param numberRuleComponentIdList 编号规则组成配置ID列表
     */
    Integer batchDeleteNumberRuleComponent(List<Long> numberRuleComponentIdList);

    /**
     * 更新部分编号规则组成配置
     * @param numberRuleComponent 编号规则组成配置参数
     */
    Integer updateNumberRuleComponentPartial(NumberRuleComponent numberRuleComponent);

    /**
     * 更新全部编号规则组成配置
     * @param numberRuleComponent 编号规则组成配置参数
     */
    Integer updateNumberRuleComponent(NumberRuleComponent numberRuleComponent);

    /**
     * 查询一条编号规则组成配置
     * @param numberRuleComponentId 编号规则组成配置ID
     */
    NumberRuleComponent getNumberRuleComponentById(Long numberRuleComponentId);

    /**
     * 分页查询编号规则组成配置
     * @param numberRuleComponentQueryDTO 编号规则组成配置参数
     */
    Page<NumberRuleComponent> getNumberRuleComponentPage(
            NumberRuleComponentDTO.QueryDTO numberRuleComponentQueryDTO);

    /**
     * 根据条件查询 编号规则组成配置 数量
     * @param numberRuleComponentQueryDTO 编号规则组成配置参数
     */
    Long getNumberRuleComponentCount(NumberRuleComponentDTO.QueryDTO numberRuleComponentQueryDTO);

    /**
     * 根据条件查询 编号规则组成配置
     * @param numberRuleComponentQueryDTO 编号规则组成配置参数
     */
    List<NumberRuleComponent> getNumberRuleComponentList(
            NumberRuleComponentDTO.QueryDTO numberRuleComponentQueryDTO);

}
